From 62e47fefdcf06b1e5c78cc81265dd0503966cb26 Mon Sep 17 00:00:00 2001 From: Marco A L Barbosa Date: Thu, 30 Mar 2017 20:06:54 -0300 Subject: [PATCH] Add openssl build support for android --- Makefile.in | 15 +++++++++++++++ src/ci/run.sh | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/Makefile.in b/Makefile.in index 99ab8f1bd..b1c85ebe5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -195,11 +195,15 @@ $(DOC_DIR)/%: $(S)src/doc/% @mkdir -p $(@D) cp $< $@ +OPENSSL_OS_aarch64-linux-android := linux-generic64 OPENSSL_OS_aarch64-unknown-linux-gnu := linux-aarch64 +OPENSSL_OS_arm-linux-androideabi := android OPENSSL_OS_arm-unknown-linux-gnueabi := linux-armv4 OPENSSL_OS_arm-unknown-linux-gnueabihf := linux-armv4 +OPENSSL_OS_armv7-linux-androideabi := android-armv7 OPENSSL_OS_armv7-unknown-linux-gnueabihf := linux-armv4 OPENSSL_OS_i686-apple-darwin := darwin-i386-cc +OPENSSL_OS_i686-linux-android := android-x86 OPENSSL_OS_i686-unknown-freebsd := BSD-x86-elf OPENSSL_OS_i686-unknown-linux-gnu := linux-elf OPENSSL_OS_i686-unknown-linux-musl := linux-elf @@ -217,11 +221,15 @@ OPENSSL_OS_x86_64-unknown-linux-gnu := linux-x86_64 OPENSSL_OS_x86_64-unknown-linux-musl := linux-x86_64 OPENSSL_OS_x86_64-unknown-netbsd := BSD-x86_64 +OPENSSL_AR_aarch64-linux-android := aarch64-linux-android-ar OPENSSL_AR_aarch64-unknown-linux-gnu := aarch64-linux-gnu-ar +OPENSSL_AR_arm-linux-androideabi := arm-linux-androideabi-ar OPENSSL_AR_arm-unknown-linux-gnueabi := arm-linux-gnueabi-ar OPENSSL_AR_arm-unknown-linux-gnueabihf := arm-linux-gnueabihf-ar +OPENSSL_AR_armv7-linux-androideabi := arm-linux-androideabi-ar OPENSSL_AR_armv7-unknown-linux-gnueabihf := armv7-linux-gnueabihf-ar OPENSSL_AR_i686-apple-darwin := ar +OPENSSL_AR_i686-linux-android := i686-linux-android-ar OPENSSL_AR_i686-unknown-freebsd := i686-unknown-freebsd10-ar OPENSSL_AR_i686-unknown-linux-gnu := ar OPENSSL_AR_i686-unknown-linux-musl := ar @@ -238,11 +246,16 @@ OPENSSL_AR_x86_64-unknown-freebsd := x86_64-unknown-freebsd10-ar OPENSSL_AR_x86_64-unknown-linux-gnu := ar OPENSSL_AR_x86_64-unknown-linux-musl := ar OPENSSL_AR_x86_64-unknown-netbsd := x86_64-unknown-netbsd-ar + +OPENSSL_CC_aarch64-linux-android := aarch64-linux-android-gcc OPENSSL_CC_aarch64-unknown-linux-gnu := aarch64-linux-gnu-gcc +OPENSSL_CC_arm-linux-androideabi := arm-linux-androideabi-gcc OPENSSL_CC_arm-unknown-linux-gnueabi := arm-linux-gnueabi-gcc OPENSSL_CC_arm-unknown-linux-gnueabihf := arm-linux-gnueabihf-gcc OPENSSL_CC_armv7-unknown-linux-gnueabihf := armv7-linux-gnueabihf-gcc +OPENSSL_CC_armv7-linux-androideabi := arm-linux-androideabi-gcc OPENSSL_CC_i686-apple-darwin := clang +OPENSSL_CC_i686-linux-android := i686-linux-android-gcc OPENSSL_CC_i686-unknown-freebsd := i686-unknown-freebsd10-gcc OPENSSL_CC_i686-unknown-linux-gnu := gcc OPENSSL_CC_i686-unknown-linux-musl := musl-gcc @@ -261,6 +274,8 @@ OPENSSL_CC_x86_64-unknown-linux-musl := musl-gcc OPENSSL_CC_x86_64-unknown-netbsd := x86_64-unknown-netbsd-gcc SETARCH_i686-unknown-linux-gnu := setarch i386 + +OPENSSL_CFLAGS_aarch64-linux-android := "-mandroid -fomit-frame-pointer" OPENSSL_CFLAGS_i686-apple-darwin := -m32 OPENSSL_CFLAGS_i686-unknown-linux-gnu := -m32 OPENSSL_CFLAGS_i686-unknown-linux-musl := -m32 diff --git a/src/ci/run.sh b/src/ci/run.sh index 1f20a7652..4ffc410be 100755 --- a/src/ci/run.sh +++ b/src/ci/run.sh @@ -47,6 +47,22 @@ if [ -n "$CI" ] && [ "$BRANCH" != "auto-cargo" ] && [ "$ALLOW_PR" = "" ]; then exit 0 fi +# For some unknown reason libz is not found in the android docker image, so we +# use this workaround +case $TARGET in + arm-linux-androideabi | armv7-linux-androideabi ) + export DEP_Z_ROOT=/android-ndk/arm/sysroot/usr + ;; + + aarch64-linux-android ) + export DEP_Z_ROOT=/android-ndk/arm64/sysroot/usr/ + ;; + + i686-linux-android ) + export DEP_Z_ROOT=/android-ndk/x86/sysroot/usr/ + ;; +esac + $SRC/configure \ --prefix=/tmp/obj/install \ --target=$TARGET \ -- 2.30.2